import {
	baseUrl,
} from './config'
export function apiapi(networkUrl, methodsWay, dataCont, isUrl) {
	// 默认为开启错误提示
	let util = {
		showError: true
	}
	if (isUrl) {
		if (isUrl.isUrl) {
			baseUrl = ''
		}
	}
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseUrl + networkUrl, //由基础路径和接口地址
			method: methodsWay, //请求的方式必须大写
			dataType: 'json',
			data: dataCont || {}, //参数
			header: {
				'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
				'guid': uni.getStorageSync("guid") ? uni.getStorageSync("guid") : ''
			},
			sslVerify: false,
			// 成功使用resolve
			success: (res) => {
				if (res.data.code === -30) {
					uni.showModal({
						title: '系统提示',
						content: '登录状态已过期，您可以继续留在该页面，或者重新登录',
						cancelColor: 'gary',
						confirmText: '重新登录',
						confirmColor: '#0062AD',
						success: function(res) {
							if (res.confirm) {
								uni.removeStorageSync("guid")
								uni.navigateTo({
									url: '/pages/login/index',
								});
							}
						}
					});
				} else if (res.data.code) {
					if (res.data.code != -1) {
						if (res.data && res.data.success) {
							resolve(res)
						} else {
							if (util.showError) {
								showError(res);
							}
							resolve(res)
						}
					} else {
						uni.showToast({
							title: res.data.msg || '后端接口异常',
							icon: 'error',
							duration: 3000
						});
					}
				} else if (res.data.code === 1) {
					if (res.data && res.data.success) {
						resolve(res)
					} else {
						if (util.showError) {
							showError(res);
						}
						resolve(res)
					}
				}
			},
			//失败调用reject，
			fail: (err) => {
				console.log("接口失败",err)
				// 失败做处理
				if (util.showError) {
					showError(res);
				}
				reject(err)
			}
		});
	})
}

// 错误处理
const showError = (error) => {
	if (error) {
		switch (error.data.code) {
			case 401:
				uni.showToast({
					title: '没有权限',
					icon: 'none',
					duration: 1000
				});
				break;

			case 403:
				uni.showToast({
					title: '拒绝访问',
					icon: 'none',
					duration: 1000
				});
				break;

			case 404:
				uni.showToast({
					title: '很抱歉，资源未找到!',
					icon: 'none',
					duration: 1000
				});
				break;

			case 500:
				uni.showToast({
					title: '没有权限',
					icon: 'none',
					duration: 1000
				});
				break;

			case 502:
				uni.showToast({
					title: '服务器异常',
					icon: 'none',
					duration: 1000
				});
				break;

			case 504:
				uni.showToast({
					title: '网络超时',
					icon: 'none',
					duration: 1000
				});
				break;
		}
	} else {
		uni.showToast({
			title: '网络异常',
			icon: 'none',
			duration: 1000
		});
	}
}
